package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
public class HelloController {
    @RequestMapping("/hello")
    @ResponseBody
    public String hello() {
        return "<h1  style=\"color: red\">hello SpringMVC!</h1>";
    }

    //从请求的 URL 中提取参数值，并将这些参数值注入到方法的参数中。
    @GetMapping("/hi/{name}")
    @ResponseBody
    public String sayhi(@PathVariable String name) {
        System.out.println("name==>" + name);
        return "hello " + name + "!";
    }

    //注意与上面的取参数值区分
    @GetMapping("/hi")
    @ResponseBody
    public String hi(String name) {
        System.out.println("name==>" + name);
        return "hello " + name + "!";
    }

    //@RequestParam 注解具有多个属性，其中最常用的是：
    //- value：用于指定要绑定的参数的名称，可以与方法参数名不同。
    //- required ：指定参数是否是必需的。默认为 true，如果设置为 false，参数可以省略。
    @GetMapping("/hei")
    @ResponseBody
    public String sayhei(@RequestParam("username")  String name) {
        System.out.println("name==>" + name);
        return "hello " + name + "!";
    }
}
